package com.fpj.sat.vehicle_administrator.action;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.persistence.NoResultException;

import org.apache.log4j.Logger;

import com.fpj.sat.vehicle_administrator.domain.Usuario;
import com.fpj.sat.vehicle_administrator.service.UsuarioService;
import com.fpj.sat.vehicle_administrator.util.Util;
import com.fpj.sat.vehicle_administrator.view.LoginPanel;
import com.fpj.sat.vehicle_administrator.view.PrincipalFrame;

public class LoginAction implements ActionListener{
	
	private static final Logger logger = Logger.getLogger(LoginAction.class);
	
	private LoginPanel panel;
	private PrincipalFrame principal;
	
	private UsuarioService usuarioService;
	
	public LoginAction(LoginPanel panel, PrincipalFrame principal) {
		this.panel = panel;
		this.principal = principal;
		usuarioService = Util.getBean(UsuarioService.class);
	}
	
	public void actionPerformed(ActionEvent e) {
		try {
			Usuario usuario = usuarioService.getUsuario(panel.getTxtUsuario().getText(), new String(panel.getTxtPassword().getPassword()));
			if(usuario != null){
				principal.irVentanaRegistro(usuario);
			}else{
				principal.mostrarMensajeError("No existe usuario");
			}
		} catch (Exception ex) {
			if(ex instanceof NoResultException){
				principal.mostrarMensajeError("Usuario y/o password incorrectos");
			}else{
				logger.error("Ocurrio un error: ", ex);
				principal.mostrarMensajeError("Ocurrio un error: " + ex.getMessage());
			}
		}
		
	}

}
